import { createApp } from 'vue'
import router from './router/index'
import App from './App.vue'
import api from './api/index'


// router.beforeEach((to, from, next) => {
//   const token = localStorage.getItem('h5_token') || ''
//   if (!token && to.path !== '/login') {
//     next('/login') // 重定向到登录页
//   } else if (token && to.path === '/login') {
//     next('/home') // 重定向到主页
//   } else {
//     next() // 允许导航
//   }  
// })

// 路由守卫
const whiteList = ['/login', '/register']
router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('h5_token') || ''
  // 1. 处理根路径重定向
  if (to.path === '/') {
    console.log('根路径重定向到 /home')
    return next('/home')
  }

  // 2. 处理已登录状态
  if (token) {
    if (to.path === from.path) {
      console.log('检测到重复导航，直接放行')
      return next()
    }
    
    if (whiteList.includes(to.path)) {
      console.log('已登录用户访问白名单页面，重定向到首页')
      return next('/home')
    }
    
    console.log('已登录用户访问普通页面，允许访问')
    return next()
  }

  // 3. 处理未登录状态
  if (whiteList.includes(to.path)) {
    console.log('未登录用户访问白名单页面，允许访问')
    return next()
  }

  console.log('未登录用户访问受限页面，重定向到登录页')
  return next('/login')
})

const app = createApp(App)

// 给实例挂载api
app.config.globalProperties.$api = api

// 挂载路由
app.use(router)
app.mount('#app')
